package protocollo;

import java.util.ArrayList;
import java.util.StringTokenizer;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import seggio.DOMScriviRisultati;
import seggio.Seggio;

public class DAOCmdSeggio {

    //private static DOMxml domXMLCabina;
    private DOMScriviRisultati scrivi;
    private Seggio seggio;
    public DAOCmdSeggio() {
        //domXMLCabina = new DOMxml("src/config/configSeggio.xml", "cabina");
    }

    public boolean statoLibero(String ip,boolean s) throws TransformerConfigurationException, TransformerException {        
        System.out.println("imposto lo stato della cabina LIBERA, risultati ricevuti");
        System.out.println("modifica dello stato cabina nella hash in corso...");        
        seggio.setStatoCabina(ip,s);
        return true;
    }

    public boolean statoOccupato(String ip,boolean s) throws TransformerConfigurationException, TransformerException {
        System.out.println("imposto lo stato della cabina OCCUPATA avendo ricevuto la scheda elettorale");
        System.out.println("modifica dello stato cabina nella hash in corso...");
        seggio.setStatoCabina(ip,s);
        //seggio.statoCab.put(ip, s);
        return true;
    }

    public String risultatiSenato(String ss) throws ParserConfigurationException {
        //System.out.println(ss);
        ArrayList<String> strListSenato = new ArrayList<String>();
        String ssPulita = pulisciStringa(ss);
        StringTokenizer strTok = new StringTokenizer(ssPulita);
        while (strTok.hasMoreTokens()) {
                    strListSenato.add(strTok.nextToken());
        }
        //scrivo i risultati in maniera sincronizzata dentro al file risultatiSenato.xml        
        scrivi = new DOMScriviRisultati();
        scrivi.scriviRisultatiSeggio(strListSenato, "src/risultati/risultatiSenato.xml");
        System.out.println(strListSenato);
        return ss;
    }

    public String risultatiCamera(String sc) {
        System.out.println(sc);
        return sc;

    }

    public String risultatiReferendum(String sr) {
        System.out.println(sr);
        return sr;

    }
    
    public String pulisciStringa(String s) { 
        String a = s.replaceAll("\\{","");
        String b = a.replaceAll("\\}","");
        String c = b.replaceAll("\\[","");
        String d = c.replaceAll("\\]","");   
        String e = d.replaceAll("\\,","");
        return e;
    }
}
